package com.umariana.ClinicaVeterinaria.Persistencia;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.umariana.ClinicaVeterinaria.mundo.Consulta;




public class ConsultaDao extends Database
{

	/**
	 *  constructor de la clase ConsultaDao
	 */
	public ConsultaDao() {
		super();
		
	}
	
	/**
	 * agrega una consulta  que ingresa como parametro a la base de datos
	 * @param c consulta que se desea agregar
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 * @throws IllegalAccessException 
	 * @throws InstantiationException 
	 * @throws ParseException 
	 */
	public void insertConsulta(Consulta c,String pideString) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
	{
		conectar();
		Connection conexion = getConexion();
		PreparedStatement comando = conexion.prepareStatement("call AgregarConsulta(?,?,?,?,?,?,?)");
	    MascotaDao miMascotaDao = new MascotaDao();
	  
		comando.setString(1,c.getFecha());
		comando.setString(2,c.getHora());
		comando.setInt(3, Integer.parseInt(pideString));
		comando.setInt(4, miMascotaDao.darIdMascota(c.getNombreMascota()));
		comando.setString(5, c.getMotivo());
		comando.setString(6, c.getNombreMascota());
		comando.setInt(7, Integer.parseInt(pideString));
		
		comando.executeUpdate();
		comando.close();
		desconectar();
		
		
	}

	/**
	 * modifica una consulta  que ingresa como parametro a la base de datos
	 * @param c consulta que se desea agregar
	 */
	public void updateConsulta(Consulta c)
	{
		
	}
	
	/**
	 * elimina una consulta que ingresa como parametro a la base de datos
	 * @param c consulta que se desea agregar
	 */
	public void deleteConsulta(Consulta c)
	{
		
	}
	
	/**
	 * retorna la consulta a buscar
	 * @param c consulta a buscar
	 * @return la lista con la lista de consulta
	 */
	public ArrayList<Consulta> selectrConsulta (Consulta c)
	{
		return null;
	}
	
	/**
	 * retorn todos las consutla
	 * @param identificacion 
	 * @return lista de consultas
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 * @throws IllegalAccessException 
	 * @throws InstantiationException 
	 */
	public ArrayList<Consulta> selectAllConsultas(String identificacion) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
	{
		ArrayList<Consulta> listaConsulta = new ArrayList<Consulta>();
		
		conectar();
		Connection conexion = getConexion();
		PreparedStatement comando = conexion.prepareStatement("call darMascotasPropietarios(?)");
		comando.setInt(1, Integer.parseInt(identificacion));
		ResultSet rs = comando.executeQuery();
		while(rs.next())
		{
			Consulta c = new Consulta(rs.getString(3),rs.getString(4), rs.getString(2), rs.getString(5));
			listaConsulta.add(c);
		}
		
		
		
		return listaConsulta;
		
		
	}

	
	
}
